package actiontiktokmodelmysql

import (
	"database/sql/driver"
	"encoding/json"
	"gorm.io/gorm"
	"time"
)

// 后台平台菜单表
type ActionElement struct {
	Id            int64          `gorm:"primaryKey;autoIncrement;comment:id" json:"id"`
	Icon          string         `json:"icon" gorm:"column:icon;type:varchar(256);not null;default:'';comment:缩略图地址"`                // 缩略图地址
	No            string         `json:"no" gorm:"column:no;type:varchar(256);not null;default:'';comment:元素编号-参考 10465705，运营人员录入的"` // 元素编号-参考 10465705，运营人员录入的
	EleType       int64          `json:"eleType" gorm:"column:ele_type;type:bigint;default:0;not null;comment:一级类型"`                 // 是否缓存 0否 1是
	ElePart       int64          `json:"elePart" gorm:"column:ele_part;type:bigint;default:0;not null;comment:二级类型"`
	FileNo        string         `json:"fileNo" gorm:"column:file_no;type:varchar(256);not null;default:'';comment:元素编号-参考 10465705，运营人员录入的"` // 元素编号-参考 10465705，运营人员录入的
	Name          string         `json:"name" gorm:"column:name;type:varchar(256);not null;default:'';comment:元素名字-运营人员填写"`                   // 元素名字-运营人员填写
	Sex           int            `json:"sex" gorm:"column:sex;type:tinyint;default:0;not null;comment:是否缓存 1男 2女 0通用"`                        // 是否缓存 0否 1是
	Quality       int64          `json:"quality" gorm:"column:quality;type:bigint;default:0;not null;comment:品质:1:s 2:a 3:b 4:c"`
	CreatedUserId int64          `json:"createUserId" gorm:"column:created_user_id;type:bigint;default:0;not null;comment:创建人id"`    // 创建人id
	UpdateUserId  int64          `json:"updated_user_id" gorm:"column:updated_user_id;type:bigint;default:0;not null;comment:更新人id"` // 更新人id
	CreatedAt     time.Time      `json:"created_at" gorm:"column:created_at;type:datetime"`
	UpdatedAt     time.Time      `json:"updated_at" gorm:"column:updated_at;type:datetime"`
	DeletedAt     gorm.DeletedAt `gorm:"index;type:datetime" json:"-"`
}

//type ElementLocalList []*ElementLocal

type ElementLocal struct {
	Code             int    `json:"code"`
	ElementLocalName string `json:"ElementLocalName"`
}

func (c ElementLocal) Value() (driver.Value, error) {
	b, err := json.Marshal(c)
	return string(b), err
}

func (c *ElementLocal) Scan(input interface{}) error {
	return json.Unmarshal(input.([]byte), c)
}
